import { test, describe } from "node:test"; import { strict as assert } from "node:assert"; import { gcd } from "./gcd.js"; describe("gcd function", () => { test("positive integers", () => { assert.strictEqual(gcd(48, 18), 6); assert.strictEqual(gcd(270, 192), 6); assert.strictEqual(gcd(100, 25), 25); }); test("zero arguments", () => { assert.strictEqual(gcd(0, 0), 0); assert.strictEqual(gcd(0, 5), 5); assert.strictEqual(gcd(7, 0), 7); }); test("negative numbers", () => { assert.strictEqual(gcd(-48, 18), 6); assert.strictEqual(gcd(48, -18), 6); assert.strictEqual(gcd(-48, -18), 6); assert.strictEqual(gcd(-100, 25), 25); }); test("co-prime numbers", () => { assert.strictEqual(gcd(13, 17), 1); assert.strictEqual(gcd(-13, 17), 1); }); test("same numbers", () => { assert.strictEqual(gcd(42, 42), 42); assert.strictEqual(gcd(-42, -42), 42); }); });